import axios from "axios";
import router from "@/router"; // 导入路由实例（确保路径正确）

// 创建 axios 实例
const request = axios.create({
  baseURL: "http://hdnla.asia:9091/", //
  timeout: 10000, // 超时时间
  headers: { "Content-Type": "application/json" },
});

// 请求拦截器
request.interceptors.request.use(
  (config) => {
    // 添加 token
    const token = localStorage.getItem("token");
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    console.log("请求发出:", config.url);
    return config;
  },
  (error) => {
    console.error("请求前错误:", error.message);
    return Promise.reject(error);
  }
);

// 响应拦截器
request.interceptors.response.use(
  (response) => {
    console.log("请求成功:", response.config.url);
    return response.data; // 统一返回data字段
  },
  (error) => {
    // 处理网络错误（如HTTPS配置问题导致的连接失败）
    if (!error.response) {
      console.error("网络错误:", "请检查HTTPS配置或网络连接");
      alert("无法连接到服务器，请检查网络设置");
      return Promise.reject(new Error("网络连接失败"));
    }

    // 处理HTTP状态码错误
    console.error(
      "请求失败:",
      `${error.response.status} - ${error.response.statusText}`
    );

    // 401未授权处理（需确保router已正确导入）
    if (error.response.status === 401) {
      localStorage.removeItem("token"); // 清除无效token
      router.push("/login"); // 跳转到登录页
    }

    // 其他错误状态码处理（可选）
    if (error.response.status === 500) {
      alert("服务器内部错误，请稍后再试");
    }

    return Promise.reject(error);
  }
);

export default request;
